package com.sky.config;


import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
@Slf4j
public class RedisConfiguration {

    //目标：创建RedisTemplate对象加入Spring容器
    //要求1：创建RedisTemplate对象加入spring容器的方法名必须为redisTemplate
    //     原因：springDateReids提供自动配置类，并且使用了@ConditionalOnMissingBean
    //     由于我们自己的项目也创建了这个对象，优先级高，所以我们先创建加入spring容器，这样后面容器自动配置就会检测到就不会再创建RedisTemplate对象
    @Bean
    //找不到redisConnectionFactory类型的bean
    @SuppressWarnings("all")
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){

        //实力RedisTemplate
        RedisTemplate redisTemplate = new RedisTemplate();
        //设置字符串序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        //设置连接池工厂
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //返回数据
        return redisTemplate;
    }

}
